package com.sunyard.utils.Response;


/**
 * 获取返回实体
 *
 * @author DUANYUBIN
 * @date : 2020-07-08 15:48
 **/
public class GetResult {

    /**
     * 成功返回数据 查询
     *
     * @param data 返回数据
     * @return 统一返回
     */
    public static <T> BaseResult<T> getResult(T data) {
        return new BaseResult<T>(BaseResult.CODE_DATA, BaseResult.MESSAGE_SUCCESS, data);
    }

    /**
     * 异常
     *
     * @return 统一返回
     */
    public static <T> BaseResult<T> getResultErr() {
        return new BaseResult<>(BaseResult.CODE_ERR, BaseResult.MESSAGE_ERR);
    }

    public static <T> BaseResult<T> getResultErr(String message) {
        return new BaseResult<>(BaseResult.CODE_ERR, message);
    }

    public static <T> BaseResult<T> getFirstLoginResult() {
        return new BaseResult<>(BaseResult.RET_RESET);
    }

    /**
     * 错误
     *
     * @param message 报错信息
     * @return 统一返回
     */
    public static <T> BaseResult<T> getResultFail(String message) {
        return new BaseResult<>(BaseResult.CODE_FAIL, message);
    }

    /**
     * 成功返回不带数据 改动
     *
     * @param message 返回信息
     * @return 统一返回
     */
    public static <T> BaseResult<T> getResultSuccess(String message) {
        return new BaseResult<>(BaseResult.CODE_SUCCESS, message);
    }

    /**
     * 成功返回带code，为商户服务平台首次登陆修改密码使用
     *
     * @param message 返回信息
     * @param code    返回状态
     * @return 统一返回
     */
    public static <T> BaseResult<T> getResultCodeAndMessage(String code, String message) {
        return new BaseResult<>(code, message);
    }

    /**
     * 失败，返回重新登录code
     *
     * @param message 报错信息
     * @return 统一返回
     */
    public static <T> BaseResult<T> getResultRelogin(String message) {
        return new BaseResult<>(BaseResult.CODE_NULL, message);
    }
}
